home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / totsrc11.zip / EXTIO2.PAS < prev    next >
Pascal/Delphi Source File  |  1993-05-04  |  2KB  |  66 lines

  1. Unit ExtIO2;
  2. {Illustrates how you can extend the Toolkit IO objects. A boolean
  3.  field is created.}
  4.  
  5. {$I TOTFLAGS.INC}
  6. INTERFACE
  7.  
  8. uses DOS, CRT, totFAST, totIO1, totSTR, totInput;
  9.  
  10. TYPE
  11.  
  12. pHotkeyIOOBJ = ^HotkeyIOOBJ;
  13. HotSpotIOOBJ = object (ItemIOOBJ)
  14.    vActionCode: tAction;
  15.    {methods ...}
  16.    constructor Init(X1,Y1,X2,Y2: byte;Act:tAction);
  17.    function    OnTarget(X,Y: byte):boolean;                 VIRTUAL;
  18.    function    Select(K:word; X,Y:byte):tAction;            VIRTUAL;
  19.    destructor  Done;                                        VIRTUAL;
  20. end; {HotSpotIOOBJ}
  21.  
  22.  
  23. IMPLEMENTATION
  24.  
  25. constructor HotSpotIOOBJ.Init(X1,Y1,X2,Y2: byte;Act:tAction);
  26. {}
  27. begin
  28.    ItemIOOBJ.Init;
  29.    vBoundary.X1 := X1;
  30.    vBoundary.Y1 := Y1;
  31.    vBoundary.X2 := X2;
  32.    vBoundary.Y2 := Y2;
  33.    vActionCode := Act;
  34. end; {HotSpotIOOBJ.Init}
  35.  
  36. function HotSpotIOOBJ.OnTarget(X,Y: byte):boolean;
  37. {}
  38. begin
  39.    Ontarget :=     (X >= vBoundary.X1)
  40.                and (X <= vBoundary.X2)
  41.                and (Y >= vBoundary.Y1)
  42.                and (Y <= vBoundary.Y2);
  43. end; {HotSpotIOOBJ.HotKey}
  44.  
  45. function HotSpotIOOBJ.Select(K:word; X,Y:byte):tAction;
  46. {}
  47. begin
  48.    Select := vActionCode;
  49. end; {HotSpotIOOBJ.Select}
  50.  
  51. destructor HotSpotIOOBJ.Done;
  52. {}
  53. begin
  54.    ItemIOOBJ.Done;
  55. end; {HotSpotIOOBJ.Done}
  56. {|||||||||||||||||||||||||||||||||||||||||||||||}
  57. {                                               }
  58. {     U N I T   I N I T I A L I Z A T I O N     }
  59. {                                               }
  60. {|||||||||||||||||||||||||||||||||||||||||||||||}
  61.  
  62. {end of unit - add initialization routines below}
  63. {$IFNDEF OVERLAY}
  64. begin
  65. {$ENDIF}
  66. end.